1. Technical Field
The embodiments herein generally relate to software simulation, and, more particularly, to use software simulation for software defect detection and software code insight without running or testing the software.
2. Description of the Related Art
Businesses worldwide incur huge losses due to poor software quality. This is because software is too complex and despite significant investment in software testing, a large number of defects remain in software when it is used for mission critical applications. Businesses also spend large amounts of money on maintenance of legacy software which cannot be migrated to more efficient software architectures because of poor understanding of the existing legacy code-base.
Commercial software consists of millions of lines of code and usually has hundreds of inputs, each having billions of possible values, thus leading to an exponential complexity of input combinations and paths through the code, which is impossible to test completely. Existing software testing technologies are unable to handle such complexity as it would take too long too execute all possible combinations. Existing technologies either do syntactic checking of code for trivial defects in localized parts of a program or do not check possible run-time values or support a small number of rules and are not extensible to add more rules.